package br.com.odontosul.action;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;

import br.com.odontosul.DAO.PacienteDAO;
import br.com.odontosul.entity.Atendimento;
import br.com.odontosul.entity.Paciente;
import br.com.odontosul.negocio.PacienteNegocio;

@Name("pacienteAction")
@Scope(ScopeType.CONVERSATION)
public class PacienteAction {
	
	List<Paciente> pacientes = new ArrayList<Paciente>();
	
	private Atendimento atendimento;	
	
	private String nomePaciente;
	
	@In(value="entityManager")
	EntityManager em;
	
	@In(required=false, create=true)
	@Out(required=false)
	Paciente paciente;
	
	public String salvarPaciente() throws SQLException{
		
		PacienteDAO DAO = new PacienteDAO();
		 
		if(paciente.getId() == null){
			
			paciente.setNome(paciente.getNome());
			DAO.adiciona(paciente);
			//em.persist(paciente);
		}else{
			DAO.alteraPaciente(paciente);
		}
		
		recuperaTodosPacientes();
		
		 return "salvo";
	}
	
	public void recuperaTodosPacientes() throws SQLException{
		
		PacienteNegocio pacienteNegocio = new PacienteNegocio();
		pacientes = pacienteNegocio.pesquisarTodosPacientes();
	}
	
	public void excluiPaciente() throws SQLException{
		PacienteDAO DAO = new PacienteDAO();
		DAO.remove(paciente);
		
		recuperaTodosPacientes();
	}
	
	public void buscarPaciente() throws SQLException{
		PacienteNegocio pacienteNegocio = new PacienteNegocio();
		pacientes = pacienteNegocio.buscarPaciente(nomePaciente);
	}

	public String carregarPaciente(){
		return "editar";
	}
	
	public void inicializaPaciente(){
		paciente = new Paciente();
	}
	
	public Atendimento getAtendimento() {
		return atendimento;
	}

	public void setAtendimento(Atendimento atendimento) {
		this.atendimento = atendimento;
	}

	public Paciente getPaciente() {
		return paciente;
	}

	public void setPaciente(Paciente paciente) {
		this.paciente = paciente;
	}

	
	public List<Paciente> getPacientes() {
		return pacientes;
	}

	public void setPacientes(List<Paciente> pacientes) {
		this.pacientes = pacientes;
	}

	public String getNomePaciente() {
		return nomePaciente;
	}

	public void setNomePaciente(String nomePaciente) {
		this.nomePaciente = nomePaciente;
	}
}
